﻿var logueado = 0;

function setLogueado(idLogueado) {
    logueado = idLogueado;
}

function LoadPageInicio() {
    $("#edtUsuario").focus();
    $("#ErrorLogin").hide();
    $("#ErrorRegistrar").hide();
}

function ValidarLogin() {
    var valida = "true";
    if ($("#edtUsuario").val() == '') {
        $("#edtUsuario").addClass("error");
        valida = "false";
    }
    else {
        $("#edtUsuario").removeClass("error");
    }
    if ($("#edtPass").val() == '') {
        $("#edtPass").addClass("error");
        valida = "false";
    }
    else {
        $("#edtPass").removeClass("error");
    }
    if (valida == "false") {
        $("#ErrorLogin").show();
    }
    else {
        $("#ErrorLogin").hide();
    }

    return valida;
}

function validarEmail(valor) {
    // re = /^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]{2,4})*(.[a-z]{2,3})$/
    // re = /\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)/
    re = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/
    if (!re.exec(valor)) {
        return false;
    } else {
        return true;
    }
}

function ValidarRegistrar() {
  
    var valida = "true";
    if ($("#edtNombre").val() == '') {
        $("#edtNombre").addClass("error");
        valida = "false";
    }
    else {
        $("#edtNombre").removeClass("error");
    }
    if ($("#edtApellido").val() == '') {
        $("#edtApellido").addClass("error");
        valida = "false";
    }
    else {
        $("#edtApellido").removeClass("error");
    }
    if ($("#edtMail").val() == '') {
        $("#edtMail").addClass("error");
        valida = "false";
    }
    else {
        $("#edtMail").removeClass("error");
    }

    if ($("#edtPassRegistro1").val() == '') {
        $("#edtPassRegistro1").addClass("error");
        valida = "false";
    }
    else {
        $("#edtPassRegistro1").removeClass("error");
    }
    if ($("#edtPassRegistro2").val() == '') {
        $("#edtPassRegistro2").addClass("error");
        valida = "false";
    }
    else {
        $("#edtPassRegistro2").removeClass("error");
    }
    if (valida == "false") {
        $("#ErrorRegistrar").empty();
        $('<div><img class="ImagenRedSocial" src="../Images/Icons/error.png" alt="" />' +
		  'Falta ingresar valores.</div>').appendTo('#ErrorRegistrar');
        $("#ErrorRegistrar").show();
    }
    else {
        if ($("#edtPassRegistro2").val() != $("#edtPassRegistro1").val()) {
            $("#edtPassRegistro1").addClass("error");
            $("#edtPassRegistro2").addClass("error");
            $("#ErrorRegistrar").empty();
            $('<div><img class="ImagenRedSocial" src="../Images/Icons/error.png" alt="" />' +
		      'No coinciden las contraseñas.</div>').appendTo('#ErrorRegistrar');
            $("#ErrorRegistrar").show();
            valida = "false";
        }
        else if (!validarEmail($("#edtMail").val())) {
            $("#edtMail").addClass("error");
            $("#ErrorRegistrar").empty();
            $('<div><img class="ImagenRedSocial" src="../Images/Icons/error.png" alt="" />' +
		      'Mail inválido.</div>').appendTo('#ErrorRegistrar');
            $("#ErrorRegistrar").show();
            valida = "false";
        }
        else {
            $("#ErrorRegistrar").hide();
        }
    }

    return valida;
}

function NewContacto(IdUsuarioSeguidor, IdUsuarioSeguido) {

    var parametros = "{" +
                        "'idUsuarioSeguidor':'" + IdUsuarioSeguidor + "'," +
                        "'idUsuarioSeguido':'" + IdUsuarioSeguido + "'" +
                      "}";

    LlamarWebService("../Servicios/Usuario.asmx/NewContacto", parametros, GetUsuariosNoSeguidos, FuncionFallo);
}

function NewContacto2(IdUsuarioSeguidor, IdUsuarioSeguido) {

    var parametros = "{" +
                        "'idUsuarioSeguidor':'" + IdUsuarioSeguidor + "'," +
                        "'idUsuarioSeguido':'" + IdUsuarioSeguido + "'" +
                      "}";

    LlamarWebService("../Servicios/Usuario.asmx/NewContacto", parametros, function (object) { }, FuncionFallo);
}

function Registrar() {
    if (ValidarRegistrar() == "true") {
        var parametros = "{" +
                            "'Nombre':'" + $('#edtNombre').val() + "'," +
                            "'Apellido':'" + $('#edtApellido').val() + "'," +
                            "'TipoUsuarioId':'" + $('#cmbTipoUsuario').val() + "'," +
                            "'Mail':'" + $('#edtMail').val() + "'," +
                            "'Pass':'" + $('#edtPassRegistro1').val() + "'" +
                          "}";

        LlamarWebService("../Servicios/Usuario.asmx/InsertarNuevoUsuario", parametros, GoToHomeFromRegistrar, FuncionFallo);
    }
}

function LogIn() {
    if (ValidarLogin() == "true") {
        var parametros = "{" +
                            "'Mail':'" + $("#edtUsuario").val() + "'," +
                            "'Pass':'" + $("#edtPass").val() + "'" +
                         "}";

        LlamarWebService("../Servicios/Usuario.asmx/LogIn", parametros, GoToHomeFromLogIn, FuncionFallo);
    }
}

function GoToHomeFromLogIn(IdUsuario) {
    if (IdUsuario == -1)
        $("#ErrorLogin").show();
    else {
        location.href = "Home2.aspx";
    }
}

function GoToHomeFromRegistrar(IdUsuario) {
    if (IdUsuario == -1) {
        $("#ErrorRegistrar").empty();
        $('<div><img class="ImagenRedSocial" src="../Images/Icons/error.png" alt="" />' +
		  'Ya existe un usuario con el mail ingresado.</div>').appendTo('#ErrorRegistrar');
        $("#ErrorRegistrar").show();
    }
    else {
        location.href = "Home2.aspx";
    }
}

var EVENTO_COMENTARIO = "EVENTO_COMENTARIO";
var EVENTO_SEGUIMIENTO = "EVENTO_SEGUIMIENTO";

function BuscarNotificaciones(idUsuario) {
    var parametros = "{'idUsuario':'" + idUsuario + "'}";
    LlamarWebService("../Servicios/Usuario.asmx/BuscarNotificaciones", parametros, manejarNotificaciones, function(){});
}



function manejarNotificaciones(notificaciones) {
    var i = 0;
    $.each(notificaciones, function (indice, notificacion) {
        if(i < 4) {
            $('#contenedorNotificaciones').append(htmlNotificacion(notificacion));    
            i++;
        }

    });
    $('#contenedorNotificaciones').append(htmlVerMasNotificaciones());
    

}


function contarNotificacionesNoLeidas(idUsuario) {
    var parametros = "{'idUsuario':'" + idUsuario + "'}";
    LlamarWebService("../Servicios/Usuario.asmx/ContarNotificacionesNoLeidas", parametros, manejarNoLeidas, function () { });
}

function manejarNoLeidas(cantidad) {

    $('#noLeidas').val(cantidad);
    if (cantidad > 0) {
        $('#notificaciones').text('Notificaciones (' + cantidad + ')');
    } else {
        $('#notificaciones').text('Notificaciones');
    }

}

function htmlVerMasNotificaciones() {
    return '<li id="verMasNotificaciones" class="notificacion-leida">' +
           '<span class="texto-notificacion"><a href="VerNotificaciones.aspx?idUsuario=' + logueado + '">Ver Más Notificaciones</a></span>' +
           '</li>';
}

function htmlNotificacion(notificacion) {
    
    var htmlNotificacion = 
    '<li id="'+ notificacion.IdNotificacion +'" class="' + (notificacion.Leida=='True'?'notificacion-leida':'notificacion-no-leida') +'" notificadoid="'+notificacion.NotificadoId+'">' +
    '<img class="foto-post" src="' + notificacion.Usuario.urlFotoPerfil + '" alt="foto-perfil">'+
    '<span class="texto-notificacion"><a class="userLink" href="VerUsuario.aspx?idUsuario=' + notificacion.Usuario.IdUsuario + '"><b>' + notificacion.Usuario.Nombre + ' ' + notificacion.Usuario.Apellido + '</b></a>';

    if(notificacion.CodigoEvento == EVENTO_SEGUIMIENTO) {
        htmlNotificacion += ' te esta siguiendo.</span></li>';
    }else {
        htmlNotificacion += ' comentó el post ' + '<a href="VerPost.aspx?postId=' + notificacion.Post.Id + '&usuarioId=' + notificacion.Post.IdCreador.IdUsuario + '">' + notificacion.Post.Titulo + '</a></span></li>';
    }

    return htmlNotificacion;
     
} 